【原创】SpringCloud关于版本号的正确使用姿势(Hoxton) |
您所在的位置:网站首页 › alem hoxton翻译 › 【原创】SpringCloud关于版本号的正确使用姿势(Hoxton) |
SpringCloud最让新手头疼的就是它的版本号问题,一旦版本号匹配不上就会报各种奇奇怪怪的错,简直令人抓狂!! 其实SpringCloud已经非常友善了,版本管理也是相当的简单,只是新手不懂罢了。首先去官网,这里以SpringCloud的Hoxton.SR7版本来举例子,这是到2020年8月20日最新的SpringCloud版本了。 官网地址:https://spring.io/projects/spring-cloud/ SpringCloud的由于包含了一大堆微服务,而且各个微服务的版本号都不一样,所以SpringCloud的版本命名是通过英文单次首字母顺序决定的,这些英文单词都是伦敦地铁站的名字,目前为止是H版,也就是Hoxton(霍斯顿),前一个版本是Greenwich(格林威治) Hoxton后面的SR7代表的是第7个正式发布版 其中最令人头大的是SpringCloud对应的微服务SpringBoot的版本,其实官网上写的也非常清楚了: 也是说我现在的Hoxton版本是SR7,超过了SR5,SpringBoot的版本必须是2.3.x,否则就会出各种意想不到的问题,比如ClassNotFound,Unable to start embedded Tomcat等等。 那有人就要问了,我这个SpringBoot的版本号是要我一个个去找吗?我从哪里可以找到呢?这里我推荐两个网站: https://mvnrepository.com/ https://package-search.jetbrains.com/
…………谁会这么蠢去一个个找版本号呢~ SpringCloud早就为开发者准备好了版本对应清单: 在根项目的pom中引入: Hoxton.SR7 2.3.3.RELEASE这些是版本号信息,第一个是SpringCloud的版本号,我这里使用Hoxton.SR7。第二个是SpringBoot微服务对应的版本号。当然spring-boot-starter-parent具体的版本号还是要去找的,当然只要找这一次就行了。 然后加上: org.springframework.cloud spring-cloud-dependencies ${spring-cloud.version} pom import org.springframework.boot spring-boot-starter-parent ${spring-boot-starter-parent.version} pom import这样就完成了通过父项目管理子项目版本号的目的了,那么所有继承这个父项目的子项目的所有版本都被自动管理,看一下spring-boot-starter-parent的源码就知道原因了: 之后所有子项目的dependency标签都不需要写version标签了,由父项目统一管理了,除非是父项目没有的。 子项目pom截图: 我看的是B站狂神的SpringCloud教程,他这一点根本没说,害我去堆标签中的内容,结果我堆了一大堆,报了一大堆莫名其妙的错,最后两个标签就完事了,浪费了我一大堆时间。 最后补充说明一下: eureka-client、eureka-server、zuul,这几个微服务的artificialId必须是带netflix的版本才能用!!!!不带netflix的只有到1.4.7.RELEASE!!!!网上一大堆教程里说的都是错的!!完全过时了,如果使用了这些不带netflix的会导致一些莫名奇妙的问题!! 还有一点,zuul服务端必须是spring-cloud-starter-netflix-zuul,带有starter的,不带starter的也会报错!! |
今日新闻 |
推荐新闻 |
CopyRight 2018-2019 办公设备维修网 版权所有 豫ICP备15022753号-3 |